//package com.store.admin.controller;
//
//import com.alibaba.fastjson.JSONObject;
//import com.github.pagehelper.PageInfo;
//import com.quick.common.dto.DtsAdDto;
//import com.quick.common.enums.HttpStatus;
//import com.quick.common.result.CodeException;
//import com.quick.common.result.ResultEntity;
//import com.quick.common.validator.Order;
//import com.quick.common.validator.RequiresPermissionsDesc;
//import com.quick.common.validator.Sort;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.util.StringUtils;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.*;
//
//import javax.validation.constraints.NotNull;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//@RestController
//@RequestMapping("/admin/ad")
//@Validated
//public class AdminAdController {
//	private static final Logger logger = LoggerFactory.getLogger(AdminAdController.class);
//
//	@Autowired
//	private DtsAdService adService;
//
//	@RequiresPermissions("admin:ad:list")
//	@RequiresPermissionsDesc(menu = { "推广管理", "广告管理" }, button = "查询")
//	@GetMapping("/list")
//	public Object list(String name, String content, @RequestParam(defaultValue = "1") Integer page,
//			@RequestParam(defaultValue = "10") Integer limit,
//			@Sort @RequestParam(defaultValue = "add_time") String sort,
//			@Order @RequestParam(defaultValue = "desc") String order) {
//		logger.info("【请求开始】推广管理->广告管理->查询,请求参数:name:{},content:{},page:{}", name, content, page);
//
//		List<DtsAdDto> adList = adService.querySelective(name, content, page, limit, sort, order);
//		long total = PageInfo.of(adList).getTotal();
//		Map<String, Object> data = new HashMap<>();
//		data.put("total", total);
//		data.put("items", adList);
//
//		logger.info("【请求结束】推广管理->广告管理->查询,响应结果:{}", JSONObject.toJSONString(data));
//		return ResultEntity.ok(data);
//	}
//
//	private Object validate(DtsAdDto ad) {
//		String name = ad.getName();
//		if (StringUtils.isEmpty(name)) {
//			throw new CodeException(HttpStatus.PARAM_FAIL);
//		}
//		String content = ad.getContent();
//		if (StringUtils.isEmpty(content)) {
//			throw new CodeException(HttpStatus.PARAM_FAIL);
//		}
//		return null;
//	}
//
//	@RequiresPermissions("admin:ad:create")
//	@RequiresPermissionsDesc(menu = { "推广管理", "广告管理" }, button = "添加")
//	@PostMapping("/create")
//	public Object create(@RequestBody DtsAdDto ad) {
//		logger.info("【请求开始】推广管理->广告管理->添加,请求参数:ad:{}", JSONObject.toJSONString(ad));
//
//		Object error = validate(ad);
//		if (error != null) {
//			logger.error("广告管理 添加校验不通过!");
//			return error;
//		}
//		adService.add(ad);
//
//		logger.info("【请求结束】推广管理->广告管理->添加,响应结果:{}", JSONObject.toJSONString(ad));
//		return ResultEntity.ok(ad);
//	}
//
//	@RequiresPermissions("admin:ad:read")
//	@RequiresPermissionsDesc(menu = { "推广管理", "广告管理" }, button = "详情")
//	@GetMapping("/read")
//	public Object read(@NotNull Integer id) {
//		logger.info("【请求开始】推广管理->广告管理->详情,请求参数:id:{}", id);
//
//		DtsAdDto brand = adService.findById(id);
//
//		logger.info("【请求结束】推广管理->广告管理->详情,响应结果:{}", JSONObject.toJSONString(brand));
//		return ResultEntity.ok(brand);
//	}
//
//	@RequiresPermissions("admin:ad:update")
//	@RequiresPermissionsDesc(menu = { "推广管理", "广告管理" }, button = "编辑")
//	@PostMapping("/update")
//	public Object update(@RequestBody DtsAdDto ad) {
//		logger.info("【请求开始】推广管理->广告管理->编辑,请求参数:ad:{}", JSONObject.toJSONString(ad));
//
//		Object error = validate(ad);
//		if (error != null) {
//			return error;
//		}
//		if (adService.updateById(ad) == 0) {
//			logger.info("推广管理->广告管理->编辑,更新广告数据失败!");
//			throw new CodeException(HttpStatus.UP_DATA_FAIL);
//		}
//
//		logger.info("【请求结束】推广管理->广告管理->编辑,响应结果:{}", JSONObject.toJSONString(ad));
//		return ResultEntity.ok(ad);
//	}
//
//	@RequiresPermissions("admin:ad:delete")
//	@RequiresPermissionsDesc(menu = { "推广管理", "广告管理" }, button = "删除")
//	@PostMapping("/delete")
//	public Object delete(@RequestBody DtsAdDto ad) {
//		logger.info("【请求开始】推广管理->广告管理->删除,请求参数:ad:{}", JSONObject.toJSONString(ad));
//
//		Long id = ad.getId();
//		if (id == null) {
//			throw new CodeException(HttpStatus.UP_DATA_FAIL);
//		}
//		adService.deleteById(id);
//
//		logger.info("【请求结束】推广管理->广告管理->删除,响应结果:{}", "成功");
//		return ResultEntity.ok();
//	}
//
//}
